package com.szly.phm.common.service;

import com.szly.phm.common.entity.dto.FaFault.FaultRecordPhenomenonDTO;
import com.szly.phm.common.entity.dto.user.LoginUserDTO;
import com.szly.phm.common.entity.result.PageResult;
import com.szly.phm.common.entity.result.RootResponse;
import com.szly.phm.common.entity.vo.Fault.FaultRecordPhenomenonVO;
import com.szly.phm.common.entity.vo.faRepair.*;
import com.szly.phm.common.entity.dto.faRepair.*;

/**
 * phm
 *
 * @Models:
 * *************************************
 *      FaRepairWays
 *      FaProgrammeMeasures
 *      FaRepairEquipment
 *      FaRepairDevice
 *      FaRepairMeasures
 *      FaRepairProgramme
 *      FaRepairRecord
 *      FaTechnicalDocumentation
 * *************************************
 *
 * @author: git.jas0nch
 * date: 2021-10-23
 */
public interface IRepairService {


    /**
     *
     * @param faRepairWaysPageDTO:
     * @return
     */
    // query
    RootResponse<PageResult<FaRepairWaysVO>> queryFaRepairWaysPage(FaRepairWaysPageDTO faRepairWaysPageDTO);

    // add
    RootResponse createFaRepairWays(CreateFaRepairWaysDTO createFaRepairWaysDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaRepairWays(UpdateFaRepairWaysDTO updateFaRepairWaysDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaRepairWays(String id, LoginUserDTO userDTO);
    /**
     *
     * @param faProgrammeMeasuresPageDTO:
     * @return
     */
    // query
    RootResponse<PageResult<FaProgrammeMeasuresVO>> queryFaProgrammeMeasuresPage(FaProgrammeMeasuresPageDTO faProgrammeMeasuresPageDTO);

    // add
    RootResponse createFaProgrammeMeasures(CreateFaProgrammeMeasuresDTO createFaProgrammeMeasuresDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaProgrammeMeasures(UpdateFaProgrammeMeasuresDTO updateFaProgrammeMeasuresDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaProgrammeMeasures(String id, LoginUserDTO userDTO);

    /**
     *
     * @param faRepairDeviceMeasuresPageDTO:
     * @return
     */
    // query
    RootResponse<PageResult<FaRepairDeviceMeasuresPageVO>> queryFaRepairDeviceMeasuresPage(FaRepairDeviceMeasuresPageDTO faRepairDeviceMeasuresPageDTO);

    // add
    RootResponse createFaRepairDeviceMeasures(CreateFaRepairDeviceMeasuresDTO createFaRepairDeviceMeasuresDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaRepairDeviceMeasures(UpdateFaRepairDeviceMeasuresDTO updateFaRepairDeviceMeasuresDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaRepairDeviceMeasures(String id, LoginUserDTO userDTO);

    /**
     *
     * @param faRepairEquipmentMeasuresPageDTO:
     * @return
     */
    // query
    RootResponse<PageResult<FaRepairEquipmentMeasuresVO>> queryFaRepairEquipmentMeasuresPage(FaRepairEquipmentMeasuresDTO faRepairEquipmentMeasuresPageDTO);

    // add
    RootResponse createFaRepairEquipmentMeasures(CreateFaRepairEquipmentMeasuresDTO createFaRepairEquipmentMeasuresDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaRepairEquipmentMeasures(UpdateFaRepairEquipmentMeasuresDTO updateFaRepairEquipmentMeasuresDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaRepairEquipmentMeasures(String id, LoginUserDTO userDTO);

    /**
     *
     * @param faRepairEquipmentPageDTO:
     * @return
     */
    // query
    RootResponse<PageResult<FaRepairEquipmentVO>> queryFaRepairEquipmentPage(FaRepairEquipmentPageDTO faRepairEquipmentPageDTO);

    // add
    RootResponse createFaRepairEquipment(CreateFaRepairEquipmentDTO createFaRepairEquipmentDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaRepairEquipment(UpdateFaRepairEquipmentDTO updateFaRepairEquipmentDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaRepairEquipment(String id, LoginUserDTO userDTO);

    /**
     *
     * @param faRepairDevicePageDTO:
     * @return
     */
    // query
    RootResponse<PageResult<FaRepairDeviceVO>> queryFaRepairDevicePage(FaRepairDevicePageDTO faRepairDevicePageDTO);

    // add
    RootResponse createFaRepairDevice(CreateFaRepairDeviceDTO createFaRepairDeviceDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaRepairDevice(UpdateFaRepairDeviceDTO updateFaRepairDeviceDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaRepairDevice(String id, LoginUserDTO userDTO);

    /**
     *
     * @param faRepairMeasuresPageDTO
     * @return
     */
    // query
    RootResponse<PageResult<FaRepairMeasuresVO>> queryFaRepairMeasuresPage(FaRepairMeasuresPageDTO faRepairMeasuresPageDTO);

    // add
    RootResponse createFaRepairMeasures(CreateFaRepairMeasuresDTO createFaRepairMeasuresDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaRepairMeasures(UpdateFaRepairMeasuresDTO updateFaRepairMeasuresDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaRepairMeasures(String id, LoginUserDTO userDTO);

    /**
     *
     * @param faRepairProgrammePageDTO
     * @return
     */
    // query
    RootResponse<PageResult<FaRepairProgrammeVO>> queryFaRepairProgrammePage(FaRepairProgrammePageDTO faRepairProgrammePageDTO);

    // add
    RootResponse createFaRepairProgramme(CreateFaRepairProgrammeDTO createFaRepairProgrammeDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaRepairProgramme(UpdateFaRepairProgrammeDTO updateFaRepairProgrammeDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaRepairProgramme(String id, LoginUserDTO userDTO);


    /**
     *
     * @param faRepairRecordPageDTO
     * @return
     */
    // query
    RootResponse<PageResult<FaRepairRecordVO>> queryFaRepairRecordPage(FaRepairRecordPageDTO faRepairRecordPageDTO);

    // add
    RootResponse createFaRepairRecord(CreateFaRepairRecordDTO createFaRepairRecordDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaRepairRecord(UpdateFaRepairRecordDTO updateFaRepairRecordDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaRepairRecord(String id, LoginUserDTO userDTO);

    /**
     *
     * @param faTechnicalDocumentationPageDTO
     * @return
     */
    // query
    RootResponse<PageResult<FaTechnicalDocumentationVO>> queryFaTechnicalDocumentationPage(FaTechnicalDocumentationPageDTO faTechnicalDocumentationPageDTO);

    // add
    RootResponse createFaTechnicalDocumentation(CreateFaTechnicalDocumentationDTO createFaTechnicalDocumentationDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaTechnicalDocumentation(UpdateFaTechnicalDocumentationDTO updateFaTechnicalDocumentationDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaTechnicalDocumentation(String id, LoginUserDTO userDTO);

    /**
     *
     * @param faFaultRecordPageDTO
     * @return
     */
    // query
    RootResponse<PageResult<FaFaultRecordVO>> queryFaFaultRecordPage(FaFaultRecordPageDTO faFaultRecordPageDTO, LoginUserDTO userDTO);

    // query the phenomenon ids
    RootResponse<FaultRecordPhenomenonVO> queryFaFaultRecordPhenomenonIds(String faultRecordId);

    RootResponse createFaultPhenomenonRecord(FaultRecordPhenomenonDTO faultRecordPhenomenonDTO,LoginUserDTO userDTO);

    // add
    RootResponse createFaFaultRecord(CreateFaFaultRecordDTO createFaFaultRecordDTO, LoginUserDTO userDTO);

    // update
    RootResponse updateFaFaultRecord(UpdateFaFaultRecordDTO updateFaFaultRecordDTO, LoginUserDTO userDTO);

    // delete
    RootResponse deleteFaFaultRecord(String id, LoginUserDTO userDTO);
}
